package com.san.report.service;

import java.util.List;
import java.util.Map;

import com.san.metadata.domain.DataSourceDO;

/**
 * 自然人信用报告服务类
 * 
 * @author hulp
 *
 */
public interface NaturalPersonReportService {

	/**
	 * 获取业务元数据小类
	 * 
	 * @param busiTypeNode    业务元数据大类ID
	 * @param naturalPersonId 自然人ID
	 * @return
	 * @throws Exception
	 */
	List<Map<String, Object>> queryBusiDataByNode(Long busiTypeNode, String naturalPersonId) throws Exception;

	/**
	 * 获取信用报告详细数据
	 * 
	 * @param dataSourceDO    数据源
	 * @param naturalPersonId 自然人ID
	 * @param busiSqldet      数据查询SQL
	 * @return
	 * @throws Exception
	 */
	List<Map<String, Object>> queryReportList(DataSourceDO dataSourceDO, String naturalPersonId, String busiSqldet)
			throws Exception;

	/**
	 * 保存快照
	 * 
	 * @param naturalPersonId 自然人ID
	 * @param batch           批次号
	 * @param type            信用报告类型
	 * @param content         快照详细信息
	 * @param QRCode          二维码信息
	 * @return
	 * @throws Exception
	 */
	boolean save(String naturalPersonId, String batch, int type, String content, String QRCode) throws Exception;

	/**
	 * 查询快照列表
	 * 
	 * @param naturalPersonId 自然人ID
	 * @param limit           分页参数
	 * @param offset          分页参数
	 * @return
	 * @throws Exception
	 */
	List<Map<String, Object>> listSnapshot(String naturalPersonId, int limit, int offset) throws Exception;

	/**
	 * 查询快照
	 * 
	 * @param ssId 快照ID
	 * @return
	 * @throws Exception
	 */
	List<Map<String, Object>> viewSnapShot(String ssId) throws Exception;

}
